#include <iostream>
#include <queue>
#include <map>
#include <unordered_map>
#include <vector>
#include <algorithm>
#include <cmath>
#include <string>
#include <cstring>
#include <set>
#include <unordered_set>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
typedef pair<int,int> pii;
const int N=110;
int f[N][N];
int main()
{

	int n;
	cin>>n;
	memset(f,0x3f,sizeof(f));
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=n;j++) cin>>f[i][j];
	}
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=n;j++)
		{
		    if(i==1 && j==1) continue;
			f[i][j]=min(f[i-1][j],f[i][j-1])+f[i][j];
		}
	
	}
// 	for(int i=1;i<=n;i++)
// 	{
// 		for(int j=1;j<=n;j++) cout<<f[i][j]<<' ';
// 		cout<<endl;
// 	}
	cout<<f[n][n]<<endl;

	return 0;
}

